#ifndef LOCATION_MSFSF_NODE_HPP
#define LOCATION_MSFSF_NODE_HPP

#include <core/node.hpp>
#include <memory>

namespace sros::location
{
    class predict_by_acc;
    class update_by_pos;
}

class MsfsfNode : public sros::Node
{
public:
    MsfsfNode(const std::string &name = "MsfsfNode", const std::string &module = "location");
    ~MsfsfNode() = default;
    
    sros::RetBool init() override;
    
    void run() override;
    
    void close() override;
    
private:
    std::shared_ptr<sros::location::predict_by_acc> predict_;
    std::shared_ptr<sros::location::update_by_pos>  update_;
};

#endif

